package com.common.platform.base.config.context;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;

public class HttpContext {
    public static HttpServletRequest getRequest(){
        ServletRequestAttributes requestAttributes=(ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if(requestAttributes==null){
            return null;
        }else{
            return requestAttributes.getRequest();
        }
    }
    public static HttpServletResponse getResponse(){
        ServletRequestAttributes requestAttributes=(ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if(requestAttributes==null){
            return null;
        }else{
            return requestAttributes.getResponse();
        }
    }
    public static Map<String,String> getRequestParameters(){
        HashMap<String,String> values=new HashMap<>();
        HttpServletRequest request = HttpContext.getRequest();
        if (request == null) {
            return values;
        }
        Enumeration<String> enums = request.getParameterNames();
        while (enums.hasMoreElements()) {
            String paramName = (String) enums.nextElement();
            String paramValue = request.getParameter(paramName);
            values.put(paramName, paramValue);
        }
        return values;
    }

    public static String getIP(){
        HttpServletRequest request=HttpContext.getRequest();
        if(request==null){
            return "127.0.0.1";
        }else {
            return request.getRemoteHost();
        }
    }

}
